

class Student:
    # 类的属性
    school = '武汉大学'

    # 初始方法
    def __init__(self, name, age):
        # 左侧实例属性，右侧局部变量
        self._name = name
        self._age = age

    # 实例方法，可以调用实例属性
    def show(self):
        return f'{self._name}今年{self._age}岁了'

    # 类方法
    @classmethod
    def cm(cls):
        print('这是一个类方法，不能调用实例属性和实例方法')

    # 类静态方法
    @staticmethod
    def sm():
        print('这是一个类静态方法，不能调用实例属性和实例方法')


stu1 = Student('张三', 20)
stu2 = Student('李四', 21)
stu3 = Student('王五', 22)
stu4 = Student('麻六', 23)
print(type(stu1))
print(type(stu2))
print(type(stu3))
print(type(stu4))

# 修改类属性
Student.school = '深圳大学'
print(stu1._name, stu1._age)


# 将对象放到组合数据类型中存储，存储到列表
items = [stu1, stu2, stu3, stu4]
for v in items:
    print(v.show())


